package com.sjsu.cloudmanager.service;

import com.sjsu.cloudmanager.model.CloudLab;
import com.sjsu.cloudmanager.model.ComputingMachine;

import java.util.List;

/**
 * Created by IntelliJ IDEA.
 * User: ckempaiah
 * Date: 9/21/11
 * Time: 12:12 AM
 * To change this template use File | Settings | File Templates.
 */
public interface CloudLabService {

    /**
     * creates cloud lab
     * @param labName
     * @param status
     * @return
     */
    public Integer createCloudLab(String labName, String status);

    /**
     * adds computing machine to cloud lab
     * @param labId
     * @param machineName
     * @param operatingSystem
     * @param memory
     * @param osVersion
     * @return
     */
    public Integer addComputingMachine(Integer labId, String machineName, String operatingSystem, int memory, String osVersion);

    /**
     * adds machine software to cloud lab
     * @param machineId
     * @param softwareIdList
     */
    public void addMachineSoftware(Integer machineId, List<Integer> softwareIdList);

    /**
     * gets computing machine
     *
     * @param machineId
     * @return
     */
    public ComputingMachine getComputingMachine(Integer machineId);

    /**
     * gets cloud lab
     * @param labId
     * @return
     */
    public CloudLab getCloudLab(Integer labId);

    public void removeCloudLab(Integer cloudLabId);

    public void removeComputingMachine(Integer machineId);

}
